package br.com.vti.sisp_sicrim.antigo.controller.relatorios;

import java.io.FileNotFoundException;
import java.text.ParseException;

import net.sf.jasperreports.engine.JRException;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.interceptor.download.InputStreamDownload;
import br.com.vti.sisp_sicrim.antigo.util.Relatorios;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela Scrr1200Report
 * 
 * @author Incode - Data: jun/2014
 * 
 */
public class Scrr1200Report {
	private String jDelegacia;
	private String jDescMunicipio;
	private int jMunicipio;
	private String jUfRegGeral;
	private long jReg_geral;
	private int jDiaReg;
	private int jMesReg;
	private int jAnoReg;
	private long jNoAutos;
	private int jDiaAtuacao;
	private int jMesAtuacao;
	private int jAnoAtuacao;
	private long jIdentidade;
	private String jPai;
	private String jMae;
	private int jSexo;
	private int dnas;
	private int mnas;
	private int anas;
	private String jNaturalidade;
	private int jCodMunNascimento;
	private String jUfNascimento;
	private String jDocApresentado;
	private long jNumDocApresentado;
	private String jOrgaoExpUf;
	private String jProfissao;
	private int jInstrucao;
	private String jDescInstrucao;
	private String jAvRua;
	private int jNumero;
	private String jBairro;
	private int jMunEndereco;
	private String jUfEndereco;
	private int jCep;
	private String jComplemento;
	private String jStatus;
	private String jDescreg;
	private String[] jAlcunha = new String[5];
	private Result result;
	private Sessao sessao;
	private Relatorios report; // Classes views

	// Classes includes
	public Scrr1200Report() throws JRException {
		inicializar();
	}

	public Scrr1200Report(Sessao sessao) throws JRException {
		this.sessao = sessao;
		inicializar();
	}

	public void inicializar() throws JRException {
		report = new Relatorios();
		jDelegacia = "";
		jDescMunicipio = "";
		jMunicipio = 0;
		jUfRegGeral = "";
		jReg_geral = 0;
		jDiaReg = 0;
		jMesReg = 0;
		jAnoReg = 0;
		jNoAutos = 0;
		jDiaAtuacao = 0;
		jMesAtuacao = 0;
		jAnoAtuacao = 0;
		jIdentidade = 0;
		jPai = "";
		jMae = "";
		jAlcunha = new String[5];
		jSexo = 0;
		dnas = 0;
		mnas = 0;
		anas = 0;
		jNaturalidade = "";
		jCodMunNascimento = 0;
		jUfNascimento = "";
		jDocApresentado = "";
		jNumDocApresentado = 0;
		jOrgaoExpUf = "";
		jProfissao = "";
		jInstrucao = 0;
		jDescInstrucao = "";
		jAvRua = "";
		jNumero = 0;
		jBairro = "";
		jMunEndereco = 0;
		jUfEndereco = "";
		jCep = 0;
		jComplemento = "";
		jStatus = "";
		jDescreg = "";
		report.setNumeroRel(2, "D");
		{
			report.setNumeroLinhaRel(2, 2);
			{
				report.adicionaCampo(1, 48, "lit_1_48", "C", "", "Delegacia Instauradora do Inquerito ou Processo:");
				report.adicionaCampo(50, 30, "Jdelegacia", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(3, 8);
			{
				report.adicionaCampo(1, 5, "lit_1_5", "C", "", "Mun.:");
				report.adicionaCampo(7, 30, "Jdescmunicipio", "X", "", "");
				report.adicionaCampo(38, 5, "lit_38_5", "C", "", "Cod.:");
				report.adicionaCampo(44, 4, "Jmunicipio", "N", "9999", "");
				report.adicionaCampo(49, 3, "lit_49_3", "C", "", "UF:");
				report.adicionaCampo(53, 2, "Jufreggeral", "X", "", "");
				report.adicionaCampo(63, 3, "lit_63_3", "C", "", "RG:");
				report.adicionaCampo(67, 13, "JregGeral", "N", "9999999999999", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(4, 16);
			{
				report.adicionaCampo(1, 6, "lit_1_6", "C", "", "Dt.Rg:");
				report.adicionaCampo(8, 2, "Jdiareg", "N", "99", "");
				report.adicionaCampo(11, 1, "lit_11_1", "C", "", "/");
				report.adicionaCampo(13, 2, "Jmesreg", "N", "99", "");
				report.adicionaCampo(16, 1, "lit_16_1", "C", "", "/");
				report.adicionaCampo(18, 4, "Janoreg", "N", "", "");
				report.adicionaCampo(23, 6, "lit_23_6", "C", "", "N.Aut:");
				report.adicionaCampo(30, 13, "Jnoautos", "N", "9999999999999", "");
				report.adicionaCampo(44, 3, "lit_44_3", "C", "", "DT:");
				report.adicionaCampo(48, 2, "Jdiaatuacao", "N", "99", "");
				report.adicionaCampo(51, 1, "lit_51_1", "C", "", "/");
				report.adicionaCampo(53, 2, "Jmesatuacao", "N", "99", "");
				report.adicionaCampo(56, 1, "lit_56_1", "C", "", "/");
				report.adicionaCampo(58, 4, "Janoatuacao", "N", "9999", "");
				report.adicionaCampo(63, 3, "lit_63_3", "C", "", "RF:");
				report.adicionaCampo(67, 13, "Jidentidade", "N", "9999999999999", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(5, 2);
			{
				report.adicionaCampo(1, 18, "lit_1_18", "C", "", "Filiacao....: Pai:");
				report.adicionaCampo(20, 60, "Jpai", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(6, 2);
			{
				report.adicionaCampo(15, 4, "lit_15_4", "C", "", "Mae:");
				report.adicionaCampo(20, 60, "Jmae", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(8, 10);
			{
				report.adicionaCampo(1, 11, "lit_1_11", "C", "", "Alcunha(s):");
				report.adicionaCampo(13, 30, "Jalcunha[1]", "X", "", "");
				report.adicionaCampo(44, 5, "lit_44_5", "C", "", "Sexo:");
				report.adicionaCampo(50, 1, "Jsexo", "N", "", "");
				report.adicionaCampo(53, 12, "lit_53_12", "C", "", "Nascimento.:");
				report.adicionaCampo(66, 2, "Dnas", "N", "99", "");
				report.adicionaCampo(69, 1, "lit_69_1", "C", "", "/");
				report.adicionaCampo(71, 2, "Mnas", "N", "99", "");
				report.adicionaCampo(74, 1, "lit_74_1", "C", "", "/");
				report.adicionaCampo(76, 4, "Anas", "N", "9999", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(9, 6);
			{
				report.adicionaCampo(1, 17, "lit_1_17", "C", "", "Local Nascimento:");
				report.adicionaCampo(19, 35, "Jnaturalidade", "X", "", "");
				report.adicionaCampo(55, 13, "lit_55_13", "C", "", "Cod.Mun.Nasc:");
				report.adicionaCampo(69, 4, "Jcodmunnascimento", "N", "9999", "");
				report.adicionaCampo(74, 3, "lit_74_3", "C", "", "UF:");
				report.adicionaCampo(78, 2, "Jufnascimento", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(10, 6);
			{
				report.adicionaCampo(1, 10, "lit_1_10", "C", "", "Doc.Apres:");
				report.adicionaCampo(12, 30, "Jdocapresentado", "X", "", "");
				report.adicionaCampo(43, 3, "lit_43_3", "C", "", "No:");
				report.adicionaCampo(47, 13, "Jnumdocapresentado", "N", "9999999999999", "");
				report.adicionaCampo(61, 3, "lit_61_3", "C", "", "ORG");
				report.adicionaCampo(65, 15, "Jorgaoexpuf", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(11, 6);
			{
				report.adicionaCampo(1, 13, "lit_1_13", "C", "", "Profissao...:");
				report.adicionaCampo(15, 30, "Jprofissao", "X", "", "");
				report.adicionaCampo(46, 9, "lit_46_9", "C", "", "Instrucao");
				report.adicionaCampo(56, 1, "Jinstrucao", "N", "9", "");
				report.adicionaCampo(58, 1, "lit_58_1", "C", "", "-");
				report.adicionaCampo(60, 20, "Jdescinstrucao", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(13, 6);
			{
				report.adicionaCampo(1, 7, "lit_1_7", "C", "", "Endere:");
				report.adicionaCampo(9, 30, "Javrua", "X", "", "");
				report.adicionaCampo(40, 3, "lit_40_3", "C", "", "No:");
				report.adicionaCampo(44, 8, "Jnumero", "N", "99999999", "");
				report.adicionaCampo(53, 6, "lit_53_6", "C", "", "Bairr:");
				report.adicionaCampo(60, 20, "Jbairro", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(14, 8);
			{
				report.adicionaCampo(1, 9, "lit_1_9", "C", "", "Municip.:");
				report.adicionaCampo(11, 4, "Jmunendereco", "N", "9999", "");
				report.adicionaCampo(16, 7, "lit_16_7", "C", "", "Estado:");
				report.adicionaCampo(24, 2, "Jufendereco", "X", "", "");
				report.adicionaCampo(27, 3, "lit_27_3", "C", "", "CEP");
				report.adicionaCampo(31, 8, "Jcep", "N", "99999999", "");
				report.adicionaCampo(40, 19, "lit_40_19", "C", "", "Complemento Endere:");
				report.adicionaCampo(60, 20, "Jcomplemento", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(15, 4);
			{
				report.adicionaCampo(1, 20, "lit_1_20", "C", "", "Status do Registro.:");
				report.adicionaCampo(22, 1, "Jstatus", "X", "", "");
				report.adicionaCampo(24, 1, "lit_24_1", "C", "", "-");
				report.adicionaCampo(26, 45, "Jdescreg", "X", "", "");
				report.setFimLinhaRel();
			}
		}
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		return true;
	}

	public String getJdelegacia() {
		return jDelegacia;
	}

	public void setJdelegacia(String jDelegacia) throws ParseException {
		this.jDelegacia = jDelegacia;
		report.adicionaValorReport("Jdelegacia", jDelegacia);
	}

	public String getJdescmunicipio() {
		return jDescMunicipio;
	}

	public void setJdescmunicipio(String jDescMunicipio) throws ParseException {
		this.jDescMunicipio = jDescMunicipio;
		report.adicionaValorReport("Jdescmunicipio", jDescMunicipio);
	}

	public int getJmunicipio() {
		return jMunicipio;
	}

	public void setJmunicipio(int jMunicipio) throws ParseException {
		this.jMunicipio = jMunicipio;
		report.adicionaValorReport("Jmunicipio", jMunicipio);
	}

	public String getJufreggeral() {
		return jUfRegGeral;
	}

	public void setJufreggeral(String jUfRegGeral) throws ParseException {
		this.jUfRegGeral = jUfRegGeral;
		report.adicionaValorReport("Jufreggeral", jUfRegGeral);
	}

	public long getJregGeral() {
		return jReg_geral;
	}

	public void setJregGeral(long jReg_geral) throws ParseException {
		this.jReg_geral = jReg_geral;
		report.adicionaValorReport("JregGeral", jReg_geral);
	}

	public int getJdiareg() {
		return jDiaReg;
	}

	public void setJdiareg(int jDiaReg) throws ParseException {
		this.jDiaReg = jDiaReg;
		report.adicionaValorReport("Jdiareg", jDiaReg);
	}

	public int getJmesreg() {
		return jMesReg;
	}

	public void setJmesreg(int jMesReg) throws ParseException {
		this.jMesReg = jMesReg;
		report.adicionaValorReport("Jmesreg", jMesReg);
	}

	public int getJanoreg() {
		return jAnoReg;
	}

	public void setJanoreg(int jAnoReg) throws ParseException {
		this.jAnoReg = jAnoReg;
		report.adicionaValorReport("Janoreg", jAnoReg);
	}

	public long getJnoautos() {
		return jNoAutos;
	}

	public void setJnoautos(long jNoAutos) throws ParseException {
		this.jNoAutos = jNoAutos;
		report.adicionaValorReport("Jnoautos", jNoAutos);
	}

	public int getJdiaatuacao() {
		return jDiaAtuacao;
	}

	public void setJdiaatuacao(int jDiaAtuacao) throws ParseException {
		this.jDiaAtuacao = jDiaAtuacao;
		report.adicionaValorReport("Jdiaatuacao", jDiaAtuacao);
	}

	public int getJmesatuacao() {
		return jMesAtuacao;
	}

	public void setJmesatuacao(int jMesAtuacao) throws ParseException {
		this.jMesAtuacao = jMesAtuacao;
		report.adicionaValorReport("Jmesatuacao", jMesAtuacao);
	}

	public int getJanoatuacao() {
		return jAnoAtuacao;
	}

	public void setJanoatuacao(int jAnoAtuacao) throws ParseException {
		this.jAnoAtuacao = jAnoAtuacao;
		report.adicionaValorReport("Janoatuacao", jAnoAtuacao);
	}

	public long getJidentidade() {
		return jIdentidade;
	}

	public void setJidentidade(long jIdentidade) throws ParseException {
		this.jIdentidade = jIdentidade;
		report.adicionaValorReport("Jidentidade", jIdentidade);
	}

	public String getJpai() {
		return jPai;
	}

	public void setJpai(String jPai) throws ParseException {
		this.jPai = jPai;
		report.adicionaValorReport("Jpai", jPai);
	}

	public String getJmae() {
		return jMae;
	}

	public void setJmae(String jMae) throws ParseException {
		this.jMae = jMae;
		report.adicionaValorReport("Jmae", jMae);
	}

	public int getJsexo() {
		return jSexo;
	}

	public void setJsexo(int jSexo) throws ParseException {
		this.jSexo = jSexo;
		report.adicionaValorReport("Jsexo", jSexo);
	}

	public int getDnas() {
		return dnas;
	}

	public void setDnas(int dnas) throws ParseException {
		this.dnas = dnas;
		report.adicionaValorReport("Dnas", dnas);
	}

	public int getMnas() {
		return mnas;
	}

	public void setMnas(int mnas) throws ParseException {
		this.mnas = mnas;
		report.adicionaValorReport("Mnas", mnas);
	}

	public int getAnas() {
		return anas;
	}

	public void setAnas(int anas) throws ParseException {
		this.anas = anas;
		report.adicionaValorReport("Anas", anas);
	}

	public String getJnaturalidade() {
		return jNaturalidade;
	}

	public void setJnaturalidade(String jNaturalidade) throws ParseException {
		this.jNaturalidade = jNaturalidade;
		report.adicionaValorReport("Jnaturalidade", jNaturalidade);
	}

	public int getJcodmunnascimento() {
		return jCodMunNascimento;
	}

	public void setJcodmunnascimento(int jCodMunNascimento) throws ParseException {
		this.jCodMunNascimento = jCodMunNascimento;
		report.adicionaValorReport("Jcodmunnascimento", jCodMunNascimento);
	}

	public String getJufnascimento() {
		return jUfNascimento;
	}

	public void setJufnascimento(String jUfNascimento) throws ParseException {
		this.jUfNascimento = jUfNascimento;
		report.adicionaValorReport("Jufnascimento", jUfNascimento);
	}

	public String getJdocapresentado() {
		return jDocApresentado;
	}

	public void setJdocapresentado(String jDocApresentado) throws ParseException {
		this.jDocApresentado = jDocApresentado;
		report.adicionaValorReport("Jdocapresentado", jDocApresentado);
	}

	public long getJnumdocapresentado() {
		return jNumDocApresentado;
	}

	public void setJnumdocapresentado(long jNumDocApresentado) throws ParseException {
		this.jNumDocApresentado = jNumDocApresentado;
		report.adicionaValorReport("Jnumdocapresentado", jNumDocApresentado);
	}

	public String getJorgaoexpuf() {
		return jOrgaoExpUf;
	}

	public void setJorgaoexpuf(String jOrgaoExpUf) throws ParseException {
		this.jOrgaoExpUf = jOrgaoExpUf;
		report.adicionaValorReport("Jorgaoexpuf", jOrgaoExpUf);
	}

	public String getJprofissao() {
		return jProfissao;
	}

	public void setJprofissao(String jProfissao) throws ParseException {
		this.jProfissao = jProfissao;
		report.adicionaValorReport("Jprofissao", jProfissao);
	}

	public int getJinstrucao() {
		return jInstrucao;
	}

	public void setJinstrucao(int jInstrucao) throws ParseException {
		this.jInstrucao = jInstrucao;
		report.adicionaValorReport("Jinstrucao", jInstrucao);
	}

	public String getJdescinstrucao() {
		return jDescInstrucao;
	}

	public void setJdescinstrucao(String jDescInstrucao) throws ParseException {
		this.jDescInstrucao = jDescInstrucao;
		report.adicionaValorReport("Jdescinstrucao", jDescInstrucao);
	}

	public String getJavrua() {
		return jAvRua;
	}

	public void setJavrua(String jAvRua) throws ParseException {
		this.jAvRua = jAvRua;
		report.adicionaValorReport("Javrua", jAvRua);
	}

	public int getJnumero() {
		return jNumero;
	}

	public void setJnumero(int long1) throws ParseException {
		this.jNumero = long1;
		report.adicionaValorReport("Jnumero", long1);
	}

	public String getJbairro() {
		return jBairro;
	}

	public void setJbairro(String jBairro) throws ParseException {
		this.jBairro = jBairro;
		report.adicionaValorReport("Jbairro", jBairro);
	}

	public int getJmunendereco() {
		return jMunEndereco;
	}

	public void setJmunendereco(int jMunEndereco) throws ParseException {
		this.jMunEndereco = jMunEndereco;
		report.adicionaValorReport("Jmunendereco", jMunEndereco);
	}

	public String getJufendereco() {
		return jUfEndereco;
	}

	public void setJufendereco(String jUfEndereco) throws ParseException {
		this.jUfEndereco = jUfEndereco;
		report.adicionaValorReport("Jufendereco", jUfEndereco);
	}

	public int getJcep() {
		return jCep;
	}

	public void setJcep(int jCep) throws ParseException {
		this.jCep = jCep;
		report.adicionaValorReport("Jcep", jCep);
	}

	public String getJcomplemento() {
		return jComplemento;
	}

	public void setJcomplemento(String jComplemento) throws ParseException {
		this.jComplemento = jComplemento;
		report.adicionaValorReport("Jcomplemento", jComplemento);
	}

	public String getJstatus() {
		return jStatus;
	}

	public void setJstatus(String jStatus) throws ParseException {
		this.jStatus = jStatus;
		report.adicionaValorReport("Jstatus", jStatus);
	}

	public String getJdescreg() {
		return jDescreg;
	}

	public void setJdescreg(String jDescreg) throws ParseException {
		this.jDescreg = jDescreg;
		report.adicionaValorReport("Jdescreg", jDescreg);
	}

	public String[] getJalcunha() {
		return jAlcunha;
	}

	public void setJalcunha(String[] jAlcunha) throws ParseException {
		this.jAlcunha = jAlcunha;
		report.adicionaValorReport("Jalcunha", jAlcunha);
	}

	public String getJalcunha(int index) {
		return jAlcunha[index];
	}

	public void setJalcunha(int index, String jAlcunha) throws ParseException {
		this.jAlcunha[index] = jAlcunha;
		report.adicionaValorReport("Jalcunha[" + String.valueOf(index) + "]", jAlcunha);
	}

	public void setPageSize(int pagesize) throws JRException {
		report.setPageSize(pagesize);
	}

	public void setLineSize(int linesize) {
		report.setLineSize(linesize);
	}

	public int getPageSize() {
		return report.getPageSize();
	}

	public int getPageLine() {
		return report.getPageLine();
	}

	public void saltaLinhas(int qtdLinhas) throws ParseException, JRException {
		report.saltaLinhas(qtdLinhas);
	}

	public void gravaRelatorio(int nroRel) throws ParseException, JRException {
		report.gravaRelatorio(report, nroRel, false);
	}

	public InputStreamDownload imprimir() throws FileNotFoundException, JRException {
		return report.imprimir();
	}
}
